package 面试题11_旋转数组的最小数字.头尾双指针_二分查找思路;

/**
 * @Author ：xu_xiaofeng.
 * @Date ：Created in 10:01 2021/3/15
 * @Description：
 */
public class Solution {
    public int minArray(int[] numbers) {
        int left = 0, right = numbers.length - 1;
        int mid;

        while (left < right) {
            mid = (left + right) >> 1;
            if (numbers[mid] > numbers[right]) {
                left = mid + 1;// 由于取的偏左的中值，左边不+1的话，二分查找可能会陷入死循环
            } else if (numbers[mid] < numbers[right]) {
//                right = mid - 1;
                right = mid;
            } else {
                // 若相等，则采用顺序查找的方法。无法判断。。。
                right--;
            }
        }
        return numbers[left];
    }
}
